Skip to content

[LOCAL] Fix CI: build rntester dynamic-frameworks lane from source#57615

Merged
cipolleschi merged 1 commit into
0.87-stablefrom
fix/0.87-ci-dynamic-frameworks-from-source
Jul 20, 2026
Merged

[LOCAL] Fix CI: build rntester dynamic-frameworks lane from source#57615
cipolleschi merged 1 commit into
0.87-stablefrom
fix/0.87-ci-dynamic-frameworks-from-source

Conversation

@cipolleschi

@cipolleschi cipolleschi commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #57614. That PR fixed the Podfile.lock version staleness, which unblocked the test_ios_rntester lanes but advanced test_ios_rntester_dynamic_frameworks (Debug + Release) to the next error:

[React-Core-prebuilt] ERROR: ReactNativeHeaders.xcframework not found in the prebuilt tarball.

Root cause

test_ios_rntester_dynamic_frameworks is meant to be the from-source dynamic-frameworks lane. But the CocoaPods install never disabled the prebuilt defaults: RCT_USE_PREBUILT_RNCORE and RCT_USE_RN_DEP both default to '1' (react_native_pods.rb), so the pods resolve to the released Maven artifacts whenever they exist.

  • On main the version is 1000.0.0, which has no Maven artifact (404) → build_from_source=true → the lane builds from source and passes.
  • On a stable branch the version (0.87.0-rc.1) does have Maven artifacts, so the lane consumes the released React core tarball — which predates the ReactNativeHeaders.xcframework layout that current HEAD's podspec requires → the prepare_command fails.

Fix

Add an explicit build-from-source input to the test-ios-rntester action that exports RCT_USE_PREBUILT_RNCORE=0 and RCT_USE_RN_DEP=0, and set it only on the test_ios_rntester_dynamic_frameworks job. This makes that lane truly build from source (its documented intent, matching main), independent of what's published to Maven, without changing behavior for any other caller of the shared action (test_ios_rntester, test_ios_rntester_ruby_3_2_0 leave it at the default false).

Changelog:

[Internal] -

Test plan

Reproduced the lane locally against the rc.1 lock:

  • Before: pod update hermes-engine --no-repo-update with the prebuilt defaults pulls the Maven rc.1 React core tarball and fails on missing ReactNativeHeaders.xcframework.
  • After (RCT_USE_PREBUILT_RNCORE=0 RCT_USE_RN_DEP=0 USE_FRAMEWORKS=dynamic): both resolve to Building from source: true, React-Core-prebuilt / prebuilt ReactNativeDependencies are removed, and pod install completes successfully.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jul 20, 2026
@cipolleschi
cipolleschi force-pushed the fix/0.87-ci-dynamic-frameworks-from-source branch from 27abaf4 to 9dc83e8 Compare July 20, 2026 15:37
@cipolleschi
cipolleschi merged commit 88f43bc into 0.87-stable Jul 20, 2026
40 of 42 checks passed
@cipolleschi
cipolleschi deleted the fix/0.87-ci-dynamic-frameworks-from-source branch July 20, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner Pick Request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant